When a user opens an application, the user may have access to commands that allow the user to perform various functions in the application. For example, the user may be able to cut or copy text or other objects from the application and paste the text or other objects into another application.
These commands may be invoked in various ways. For example, a user may select a menu toolbar and navigate through menus to find a cut or copy command. As another example, a user may enter a shortcut key (e.g., [control]-x) to cut an object from an application. As yet another example, a user may select text with a mouse and drag the text to another location thus initiating a cut and a paste command.
With the variety of input devices and applications that may need to use commands, implementing and using a command architecture is becoming more complex. This complexity is increasing the work needed to be performed by application developers and others in developing programs that use commands.